package com.java.simple.study.juc.pattern;

import java.util.Objects;

/**
 * @author zhoujunlin
 * @date 2022年06月07日 17:19
 * @desc 单例模式
 */
public final class Singleton2 {

    private static Singleton2 INSTANCE = null;

    private Singleton2() {
    }

    /**
     * 双重检验
     * 但是INSTANCE没有volatile修饰 并发下会有问题
     *
     * @return
     */
    public static Singleton2 getInstance() {
        if (Objects.isNull(INSTANCE)) {
            synchronized (Singleton2.class) {
                if (Objects.isNull(INSTANCE)) {
                    INSTANCE = new Singleton2();
                }
            }
        }
        return INSTANCE;
    }

}
